package com.lopo.strategy;

import org.springframework.stereotype.Component;

import javax.annotation.Resource;
import java.util.Map;

/**
 * 支付策略工厂类
 */
@Component
public class PayStrategyFactory {

    /**
     * 通过Spring容器的方式注入
     */
    @Resource
    private Map<String, PayStrategy> payStrategyMap;

    /**
     * 获取对应支付策略类
     * @param payStrategyEnum 支付策略枚举
     */
    public PayStrategy getPayStrategy(PayStrategyEnum payStrategyEnum){

        if(!payStrategyMap.containsKey(payStrategyEnum.getClassName())){
            System.out.println("没有对应的支付策略，无法进行支付");
            return null;
        }

        return payStrategyMap.get(payStrategyEnum.getClassName());
    }
}